package com.fin.quant.domain.service;

import com.fin.quant.instra.mysql.model.UserAccount;

/**
 * 用户领域服务
 */
public interface UserDomainService {

    /**
     * 根据用户名或邮箱或手机号查询用户
     */
    UserAccount findByLoginName(String loginName);

    /**
     * 根据ID查询用户
     */
    UserAccount findById(Long userId);

    /**
     * 验证密码
     */
    boolean validatePassword(String inputPassword, String storedPasswordHash, String salt);

    /**
     * 更新最后登录信息
     */
    void updateLastLogin(Long userId, String loginIp);

    /**
     * 检查用户状态是否正常
     */
    boolean isUserActive(UserAccount user);

    /**
     * 创建新用户
     */
    int save(UserAccount userAccount);
}
